/**
 * 组合类型在修饰数组的时候一定要在组合类型上加括号 否则就是另外一种意思
 *  如:
 *    let arr: string | number[]  // 表示arr可以是字符串类型  也可以是 数字数组
 *
 *    let arr: (string | number)[] // 表示只能是字符串数组 或者是 数字数组
 */
let arr: (string | number | boolean)[] = ['hello']

arr.push(1, 'hello', true)

console.log(arr)

/**
 * ts 数组的类型推断 可以先写上数组的类型 如 let arr: (string | number | boolean)[] = []
 *  这样就指定的数组的类型
 *
 *  ts是有像C#一样 如果数组的类型是字符串数组 那么就不能追加数字进去  这一点和所有的强类型语言是一样的
 */

/**
 * 数组也是完全可以使用泛型来定义的
 */

let brr: Array<string | number | boolean> = ['jimmy', 22, true]
console.log(brr)
